package com.lyn.tencent_health_code.dao;


import java.util.List;

/**
 * @author almost
 */
public interface BaseDao<T, Y> {

    /**
     * 保存
     *
     * @param t
     * @return
     */
    T save(T t);

    /**
     * 根据Id删除
     *
     * @param id
     * @return
     */
    boolean deleteById(Y id);

    /**
     * 修改
     *
     * @param t
     * @return
     */
    T update(T t);

    /**
     * 根据id查询
     *
     * @param id
     * @return
     */
    T findById(Y id);

    /**
     * 根据姓名查询
     *
     * @param name
     * @return
     */
    T findByName(String name);


    /**
     * 根据姓名查询数据库是否存在数据
     *
     * @param name
     * @return
     */
    boolean findByNameExist(String name);

    /**
     * 分页查询
     *
     * @param page
     * @param size
     * @return
     */
    List<T> findByPag(int page, int size);


    /**
     * 分页查询
     *
     * @param page
     * @param size
     * @return
     */
    List<T> findByPag(int page, int size, int type);

    long findByPagCount( int type);

    /**
     * 分页查询
     *
     * @param page
     * @param size
     * @return
     */
    List<T> findByPag(int page, int size, String startTime, String endTime);

    long findByPagCount( String startTime, String endTime);
    /**
     * 分页查询
     *
     * @param page
     * @param size
     * @return
     */
    List<T> findByPag(int page, int size, int type, String startTime, String endTime);
    long findByPagCount( int type, String startTime, String endTime);
    long count();
}
